<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;
use think\Session;

class Login extends EmptyController
{
    /**
     * 后台登录页面
     * @return \think\response\View
     */
    public function index()
    {   
        
        return view('admin@login/login');
    }

    /**
     * 后台登录处理
     * @return \think\response\View
     */
    public function doLogin()
    {   
        
        //接收用户名和密码
        $username = input('name');
        $password = input('password');

        // 如果有session清除session
        // Session::clear();
        Session::delete('admin_user');
        Session::delete('admin_access');

        // 按用户名查询数据
        $data = db('user')->where(array('name'=>$username))->find();

        // var_dump($data);die;

        if ($data['name'] != '王川平') {

            if ($data['status'] == 2) {

                $this->error('你的账号已被冻结,请联系超级管理员');

            }

        }

        if (!$data) {

            $this->error('用户名不存在！');
            exit;

        }
        
        //验证密码
        if ($data['pass'] != md5($password)) {

            $this->error('密码不正确');
            exit;

        }        

        //把用户信息存入session
        $a =Session::set('admin_user',$data); 
        // var_dump($_SESSION);die;
        
        $list = db('access')
                // 查询权限表下的控制器,方法
                ->field('controll,func')
                // 查询角色权限表,
                ->where('id in'.db('role_access')
                // 权限id字段
                ->field('access_id')
                // 查询用户角色表,角色表下的角色ID
                ->where("role_id in ".db('user_role')
                // 角色ID字段
                ->field('role_id')
                // 
                ->where(array('uid'=>array('eq',$data['id'])))->buildSql())
                ->buildSql())
                ->select();

        // var_dump($list);
        
        //控制器名转换为大写
        foreach ($list as $key => $val) {

            $list[$key]['controll'] = ucfirst($val['controll']);

        }

        // var_dump($list);


        $access = array();

        $access['Index'] = array('index');
        // var_dump($access);

        //遍历重新拼装
        foreach($list as $v){

            $access[$v['controll']][] = $v['func'];

            //把修改和执行修改 添加和执行添加 拼装到一起
            
            if($v['func'] == "find"){

                $access[$v['controll']][] = "updata";

            }

            if($v['func'] == "add"){

                $access[$v['controll']][] = "save";

            }
        }
        
        //将权限信息导入session
        Session::set('admin_access',$access);
        
        // 跳转(页面)
        $this->redirect('admin/index/index');

    }
    

    /**
     * 后台登出处理
     * @return \think\response\View
     */
    public function outLogin()
    {

        // Session::clear('think');
        Session::delete('admin_user');
        Session::delete('admin_access');
        $this->redirect('admin/Login/index');
        
    }

}
